package com.lr.frame.common.colorful.reflect.proxy;

/**
 * 静态代理
 * @author  ljl·尘无尘
 * @date Aug 29, 2018
 */
public class StationProxy implements TicketService {

	private Station proxyTarget;

	public StationProxy(Station proxyTarget) {
		this.proxyTarget = proxyTarget;
	}

	public void sellTicket(String info) {

		// 1.做真正业务前，提示信息
		this.serviceBefor("××××您正在使用车票代售点进行购票，每张票将会收取5元手续费！××××");
		// 2.调用真实业务逻辑
		proxyTarget.sellTicket("");
		// 3.后处理
		this.serviceAfter("××××欢迎您的光临，再见！××××\n");

	}

	public void inquire() {
		// 1做真正业务前，提示信息
		this.serviceBefor("××××欢迎光临本代售点，问询服务不会收取任何费用，本问询信息仅供参考，具体信息以车站真实数据为准！××××");
		// 2.调用真实逻辑
		proxyTarget.inquire();
		// 3。后处理
		this.serviceAfter("××××欢迎您的光临，再见！××××\n");
	}

	public void withdraw() {
		// 1。真正业务前处理
		this.serviceBefor("××××欢迎光临本代售点，退票除了扣除票额的20%外，本代理处额外加收2元手续费！××××");
		// 2.调用真正业务逻辑
		proxyTarget.withdraw();
		// 3.后处理
		this.serviceAfter("收取手续费，打印发票。。。。。\n");

	}

	/*
	 * 展示额外信息
	 */
	private void serviceBefor(String info) {
		System.out.println(info);
	}

	/*
	 * 收取手续费
	 */
	private void serviceAfter(String info) {
		System.out.println(info);
	}

}
